import java.util.Arrays;
public class Test {
    public static void main(String[] args) {
        int[] arr = new int[]{ 1,2,3 };
        //新创建一个数组类型 arr2 来接收返回值
        //arr2 就会与 arr 引用的是同一个数组
        int[] arr2 = func(arr);
        System.out.println("arr2[0] = " + arr[0]);
    }
    public static int[] func(int[] a){  //注意函数返回值类型
        a[0] = 100;
        return a;   //返回的是地址
    }
}
//输出结果
//arr2[0] = 100



/*int[] arr = {9, 5, 2, 7};
        Arrays.sort(arr);
        System.out.println(Arrays.toString(arr));*/
//输出结果
//[2, 5, 7, 9]

/*public static void main(String[] args) {
        int[] arr = {1,2,3,4,5,6};
        //目前 arr2 和 arr 引用的是同一个数组
        int[] arr2 = arr;
        System.out.println(Arrays.toString(arr));
        System.out.println(Arrays.toString(arr2));
        System.out.println("=================");

        // 使用Arrays中copyOf方法完成数组的拷贝：
        // copyOf方法在进行数组拷贝时，创建了一个新的数组
        // 拷贝完后arr和arr2引用的就不是同一个数组了。
        arr2 = Arrays.copyOf(arr,arr.length);
        //证明
        //修改arr[0]的值，如果arr和arr2指向的数组不一样
        //则打印出的内容不一样
        arr[0] = 20;
        System.out.println(Arrays.toString(arr));
        System.out.println(Arrays.toString(arr2));*/
//输出结果
//[1, 2, 3, 4, 5, 6]
//[1, 2, 3, 4, 5, 6]
//=================
//[20, 2, 3, 4, 5, 6]
//[1, 2, 3, 4, 5, 6]


